package com.shopping.mall.core.module.favorite.service;

import com.shopping.mall.base.http.Result;
import com.shopping.mall.core.module.favorite.entity.Favorite;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.shopping.mall.base.http.Result;
import com.baomidou.mybatisplus.extension.service.IService;
import io.swagger.models.auth.In;

import java.util.List;

/**
 * <p>
 * Favorite服务类
 * </p>
 *
 * @author zzy
 * @date 2021-08-15
 */
public interface FavoriteService extends IService<Favorite> {

    /**
     * 收藏夹添加商品
     *
     * @param goodsId: 商品id
     * @return Result<Object>
     */
    Result<Object> add(String goodsId);

    /**
     * 查看收藏夹(分页)
     *
     * @param current：页码
     * @param size：每页条数
     * @return
     */
    Result<Object> favoritePage(Integer current, Integer size);

    /**
     * 查看收藏夹(不分页)
     *
     * @return
     */
    Result<Object> favorite();

    /**
     * 取消收藏
     *
     * @param goodsId
     * @return
     */
    Result<Object> delete(String goodsId);

    /**
     * 分页查询
     *
     * @param current：页码
     * @param size：每页条数
     * @param favorite：筛选条件
     * @return IPage<Favorite>
     */
    IPage<Favorite> getFavoritePage(Integer current, Integer size, Favorite favorite);

    /**
     * 查询所有
     *
     * @param favorite：筛选条件
     * @return List<Favorite>
     */
    List<Favorite> getAll(Favorite favorite);

    /**
     * 通过id删除
     *
     * @param id：favoriteId
     * @return Result<Object>
     */
    Result<Object> deleteById(String id);

    /**
     * 批量删除
     *
     * @param ids：id列表
     * @return Result<Object>
     */
    Result<Object> batchDelete(List<String> ids);
}
